package com.example.demo.leetcode100题;

import com.example.demo.StopWatchTemplate;

/**
 * @author：zzc
 * @date: 2022/9/1
 */
public class 删除排序链表中的重复元素 {

    //存在一个按升序排列的链表，给你这个链表的头节点 head ，请你删除所有
    //重复的元素，使每个元素 只出现一次 。返回同样按升序排列的结果链表。
    //示例 1：
    //输入：head = [1,1,2]
    //输出：[1,2]
    //示例 2：
    //输入：head = [1,1,2,3,3]
    //输出：[1,2,3]
    //提示：
    //链表中节点数目在范围 [0, 300] 内
    //-100 <= Node.val <= 100
    //题目数据保证链表已经按升序排列

    public static void main(String[] args) {
        ListNode node1 = new ListNode(1);
        node1.next = new ListNode(2);
        node1.next.next = new ListNode(2);
        System.out.println(StopWatchTemplate.doSupplier(() -> removeDuplicates(node1)));
    }

    private static ListNode removeDuplicates(ListNode l1) {
        if (l1 == null || l1.next==null) {
            return l1;
        }
        ListNode currentNode = l1;
        while (null != currentNode.next) {
            if (currentNode.next.val == currentNode.val) {
                currentNode.next = currentNode.next.next;
            }else {
                currentNode = currentNode.next;
            }

        }

        return l1;
    }


}
